Skip to content

shikra: Add support for GPU and Adreno_SMMU DT.#696

Open
asherawa wants to merge 3 commits into
qualcomm-linux:qcom-6.18.yfrom
asherawa:dt-shikra-smmu-separate
Open

shikra: Add support for GPU and Adreno_SMMU DT.#696
asherawa wants to merge 3 commits into
qualcomm-linux:qcom-6.18.yfrom
asherawa:dt-shikra-smmu-separate

Conversation

@asherawa

@asherawa asherawa commented Jun 11, 2026

Copy link
Copy Markdown

Add the A704 GPU and GMU wrapper device tree nodes to shikra.dtsi,
including register mappings, clock, interconnect, IOMMU, OPP table, and
zap shader region. Enable the GPU and set the zap shader firmaware path
on all three Shikra board variants (cqm-evk, cqs-evk, iqs-evk).

Unlike the CPU, the GPU does not throttle its speed automatically when it
reaches high temperatures.
Set up GPU cooling by throttling the GPU speed
when reaching 115°C.

Add the Adreno GPU IOMMU (adreno_smmu) node for the Shikra SoC.

qli-2.0 GA Critical Fix
exception - https://jira-dc.qualcomm.com/jira/browse/QLIJIRA-130

@asherawa asherawa requested review from a team, knaveen-qc, quicAspratap and trsoni June 11, 2026 05:07
@quic-ksanadhy

Copy link
Copy Markdown

shikra: Enable GPU (adreno smmu node + thermal + dt support) -> This title doesn't look good.
Make it something like Add support for GPU and Adreno_SMMU DT.

@asherawa asherawa changed the title shikra: Enable GPU (adreno smmu node + thermal + dt support) shikra: Add support for GPU and Adreno_SMMU DT. Jun 11, 2026
@asherawa asherawa force-pushed the dt-shikra-smmu-separate branch from 51cdaa6 to c8e2667 Compare June 11, 2026 11:04
@qlijarvis

Copy link
Copy Markdown

PR #696 — validate-patch

PR: #696

Verdict Issues Detailed Report
⚠️ 3 Full report

Final Summary

  1. Lore link present: No — None of the three commits contain Link: tags to lore.kernel.org
  2. Lore link matches PR commits: N/A — No lore links to compare against
  3. Upstream patch status: Unknown — No upstream submission found via lore.kernel.org search for authors/subjects; likely vendor-only or not yet posted
  4. PR present in qcom-next: Not checked — Would require access to qcom-next branch
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #696 - Add Shikra GPU support (3 commits)
Upstream commit: N/A (not found on lore.kernel.org)
Verdict: ⚠️ PARTIAL


Commit 1/3: arm64: dts: qcom: shikra: Add A704 GPU support

Commit Message

Check Status Note
Subject matches upstream N/A No upstream reference found
Body preserves rationale Clear description of what is added
Fixes tag present/correct N/A Not a fix
Authorship preserved ⚠️ Uses @qti.qualcomm.com (internal) instead of @oss.qualcomm.com
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts Enables GPU and sets zap-shader firmware
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts Enables GPU and sets zap-shader firmware
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts Enables GPU and sets zap-shader firmware
arch/arm64/boot/dts/qcom/shikra.dtsi Adds GPU and GMU wrapper nodes with proper bindings

Issues

  • Author email uses internal domain (@qti.qualcomm.com) instead of upstream-friendly @oss.qualcomm.com
  • No Link: tag to upstream submission
  • Missing Signed-off-by chain if this was co-developed

Commit 2/3: arm64: dts: qcom: shikra: Add GPU cooling

Commit Message

Check Status Note
Subject matches upstream N/A No upstream reference found
Body preserves rationale Clear explanation of why GPU cooling is needed
Fixes tag present/correct N/A Not a fix
Authorship preserved Uses @oss.qualcomm.com
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
arch/arm64/boot/dts/qcom/shikra.dtsi Adds thermal throttling at 115°C with proper cooling-maps

Issues

  • No Link: tag to upstream submission
  • Depends on commit 1/3 (GPU node must exist first)

Commit 3/3: arm64: dts: qcom: shikra: Add Adreno SMMU node

Commit Message

Check Status Note
Subject matches upstream N/A No upstream reference found
Body preserves rationale ⚠️ Very brief; could explain SMMU purpose
Fixes tag present/correct N/A Not a fix
Authorship preserved Uses @oss.qualcomm.com; proper co-author chain
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
arch/arm64/boot/dts/qcom/shikra.dtsi Adds adreno_smmu node with proper compatible strings and clocks

Issues

  • No Link: tag to upstream submission
  • Commit message is minimal (one sentence body)
  • Multiple Signed-off-by tags suggest co-development but no explanation in commit message

Overall Issues

  1. Missing Link: tags - None of the three commits contain Link: tags pointing to lore.kernel.org or any upstream submission
  2. Inconsistent email domains - Commit 1/3 uses @qti.qualcomm.com (internal) while 2/3 and 3/3 use @oss.qualcomm.com (upstream-friendly)
  3. No upstream traceability - Cannot verify if these patches were posted upstream or if they match any upstream submission
  4. Commit ordering concern - Commit 3/3 adds the SMMU node that commit 1/3 references (iommus = <&adreno_smmu 0 1>), but commit 3/3 comes after commit 1/3, which could cause bisection issues

Verdict

⚠️ PARTIAL PASS - Patches are technically correct and follow DT binding conventions, but lack upstream traceability and have authorship inconsistencies. The commit ordering may cause bisection issues (SMMU node added after GPU node that references it).

Recommended actions:

  1. Reorder commits: SMMU node (3/3) should come before GPU node (1/3)
  2. Add Link: tags if these were posted upstream
  3. Use consistent email domain (@oss.qualcomm.com) for all authors
  4. Expand commit message for 3/3 to explain SMMU purpose

Final Summary

  1. Lore link present: No — None of the three commits contain Link: tags to lore.kernel.org
  2. Lore link matches PR commits: N/A — No lore links to compare against
  3. Upstream patch status: Unknown — No upstream submission found via lore.kernel.org search for authors/subjects; likely vendor-only or not yet posted
  4. PR present in qcom-next: Not checked — Would require access to qcom-next branch

@qlijarvis

Copy link
Copy Markdown

PR #696 — checker-log-analyzer

PR: #696
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27343479315

Checker Result Summary
Checker Result Summary
checkpatch ⚠️ 1 warning: undocumented DT compatible string
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check GPU interrupt property has wrong cell count
sparse-check ⏭️ Skipped (no C code changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance All 3 commits missing required subject prefix
tag-check N/A Not applicable for this branch
qcom-next-check N/A Not applicable for this branch

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #696 - arm64: dts: qcom: shikra: Add A704 GPU support (3 commits)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27343479315

Checker Result Summary
checkpatch ⚠️ 1 warning: undocumented DT compatible string
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check GPU interrupt property has wrong cell count
sparse-check ⏭️ Skipped (no C code changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance All 3 commits missing required subject prefix
tag-check N/A Not applicable for this branch
qcom-next-check N/A Not applicable for this branch

❌ dtb-check

Root cause: GPU node interrupt property uses 3 cells per interrupt instead of required 4 cells

Failure details:

../arch/arm64/boot/dts/qcom/shikra.dtsi:2532.4-27: Warning (interrupts_property): 
/soc@0/gpu@5900000:#interrupt-cells: size is (12), expected multiple of 16

The GPU node at arch/arm64/boot/dts/qcom/shikra.dtsi line ~2236 defines:

interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;

This uses only 3 cells (GIC_SPI, IRQ number, trigger type), but the GIC interrupt controller on this platform requires 4 cells per interrupt. The 4th cell is typically used for interrupt affinity/routing and should be set to 0 for default routing.

Fix: Add the 4th cell (set to 0) to the GPU interrupt property:

-			interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH 0>;

Reproduce locally:

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/
# Or just build the specific DTB:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- arch/arm64/boot/dts/qcom/shikra-cqm-evk.dtb

❌ check-patch-compliance

Root cause: All 3 commits lack required subject prefix (UPSTREAM:/FROMLIST:/BACKPORT:/etc.)

Failure details:

Checking commit: arm64: dts: qcom: shikra: Add A704 GPU support
Commit summary does not start with a required prefix

Checking commit: arm64: dts: qcom: shikra: Add GPU cooling
Commit summary does not start with a required prefix

Checking commit: arm64: dts: qcom: shikra: Add Adreno SMMU node
Commit summary does not start with a required prefix

The Qualcomm Linux kernel requires commit subjects to be prefixed with tags indicating their origin:

  • UPSTREAM: - Already merged in mainline
  • FROMLIST: - Posted to upstream mailing list, pending acceptance
  • BACKPORT: - Backported from a newer kernel version
  • FROMGIT: - Cherry-picked from an upstream maintainer tree

Fix: Reword all 3 commit subjects to include the appropriate prefix. Since these appear to be new downstream patches for Shikra (not yet upstream), use FROMLIST: if they will be/have been posted upstream, or discuss with maintainers if a different tag is appropriate.

Example:

FROMLIST: arm64: dts: qcom: shikra: Add A704 GPU support
FROMLIST: arm64: dts: qcom: shikra: Add GPU cooling
FROMLIST: arm64: dts: qcom: shikra: Add Adreno SMMU node

Reproduce locally:

cd /path/to/kernel
git clone https://github.com/qualcomm-linux/kernel-checkers.git
bash kernel-checkers/check-patch-compliance.sh --kernel-src . --base <base-sha> --head <head-sha>

⚠️ checkpatch (non-blocking warning)

Root cause: DT compatible string "qcom,adreno-07000400" is not documented in bindings

Failure details:

WARNING: DT compatible string "qcom,adreno-07000400" appears un-documented 
-- check ./Documentation/devicetree/bindings/
#85: FILE: arch/arm64/boot/dts/qcom/shikra.dtsi:2236:
+			compatible = "qcom,adreno-07000400", "qcom,adreno";

Fix: This is typically a non-blocking warning if:

  1. The binding documentation exists but checkpatch didn't find it (false positive), OR
  2. The binding will be added in a separate patch/series

Verify that Documentation/devicetree/bindings/gpu/qcom,adreno.yaml (or similar) documents this compatible string. If not, add it to the binding documentation before or alongside this DTS change.

Reproduce locally:

./scripts/checkpatch.pl --strict --git <base-sha>..<head-sha>

Verdict

2 blockers must be fixed before merge:

  1. dtb-check failure: Add 4th cell (0) to GPU interrupt property
  2. check-patch-compliance failure: Add required subject prefix to all 3 commits (e.g., FROMLIST:)

The checkpatch warning about undocumented compatible string should be verified but is typically non-blocking if the binding exists or will be added separately.

asherawa and others added 3 commits June 11, 2026 18:54
Add the A704 GPU and GMU wrapper nodes to shikra.dtsi with register
maps, clocks, interconnects, IOMMU, OPP table and zap-shader region.
Enable the GPU with its zap-shader firmware on the cqm-evk, cqs-evk and
iqs-evk boards.

Signed-off-by: Aditya Sherawat <asherawa@qti.qualcomm.com>
Unlike the CPU, the GPU does not throttle its speed automatically when it
reaches high temperatures.

Set up GPU cooling by throttling the GPU speed
when reaching 115°C.

Signed-off-by: Aastha Pandey <aastha.pandey@oss.qualcomm.com>
Add the Adreno GPU IOMMU (adreno_smmu) node for the Shikra SoC.

Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
@asherawa asherawa force-pushed the dt-shikra-smmu-separate branch from c8e2667 to e7ce4c2 Compare June 11, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants